Executing and processing corporate travel search results

ABSTRACT

A technique is described for executing and displaying search results, such as for a travel search engine. The technique includes the generation of search results by querying the one or more databases based on a search request for a travel reservation by a user, who is a member of an organization having a travel expense policy. A target cost associated with the search request is determined based on the generated search results and on the travel expense policy. One or more of the search results can be annotated with a positive weight or with a calculated reward amount based on a comparison of the corresponding cost and the target cost. A graphical user interface is created having a listing of the search results, wherein the search results are rendered for display in an order based on at least one annotation.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. nonprovisional applicationSer. No. 16/113,472, filed Aug. 27, 2018, which application claims thebenefit of U.S. Provisional Application No. 62/549,966, filed Aug. 25,2017, the contents of each application is incorporated herein byreference.

FIELD OF TECHNOLOGY

The present disclosure relates generally to the field of search engines,more specifically, to systems and methods of executing and displayingsearch results of a travel search engine.

BACKGROUND

Travel has always played an important role in the facilitation of modernbusiness. The need to meet with colleagues, prospective clients,suppliers, customers, and many other functions is material andimperative for conducting successful business. While video conferencing,telephone calls, and specialized “virtual” collaborative meeting roomsdo enable the facilitation of virtual meetings and “hangouts” for peoplefrom all over the world, still, it is undeniable that face-to-facemeetings are critical for conducting a healthy and thriving business.Not surprisingly, as a result, corporations spend large amounts of moneyeach year on traveling to enable the facilitation and growth of theirrespective businesses. In fact, in many companies, corporate travelexpenditure is one of the largest items in the corporate budget, perhapssecond only to headcount costs (e.g., salaries, taxes, benefits).

Some companies have implemented a “managed” travel program, in which thecompany leases the usage of a booking system (e.g., web-based ormobile-based) that provides access to a travel inventory of hotels,flights, rental cars, and other travel-related items. In combination, oralternatively, companies may also partner with a travel agency whichprovides the actual fulfillment and support of the travel bookings.Other companies may forgo the use of a managed travel program andinstead let their employees use the booking systems of their choice(e.g., online travel agencies, or “OTAs”) for both accessing theinventory and fulfilling the bookings.

There are a variety of approaches for companies to manage theiremployees' corporate travel expenditures, including (a) policies whichspecify whether the company permits booking outside a tool or travelagency of choice, and (b) policies which specify guidelines regardingwhat class or cost of travel is a permissible expense. For example, acompany can implement a “flex” policy in which employees are permittedto book their corporate travel (e.g., flights, hotels, rental cars, andrail) in their booking system of choice or through a designated travelagency (and either the company will pay the cost directly or theemployee will get reimbursed for their expenditure). In another example,the company may implement a policy requiring use of a managed travelprogram, and travel booking will only be allowed through that system.The policy may state that booking outside of this system is notpermitted, and such outside bookings will not be eligible forreimbursements. In some cases, a company can implement a “light” policyfor class/fare/cost rules in which the company releases a formaldocument with high-level instructions on what is allowed and what is notallowed for corporate travel (e.g., business class flights are onlypermitted for an executive on long flights exceeding 10 hours). In othercases, a company may implement a “strict” policy, in which a detailedpolicy is issued that will be enforced in the booking system and/or bythe travel agency. In such cases, the policy can be embedded in thetravel booking tool and will prevent employees from booking items thatfall “out of policy” (i.e., are not allowed under the issued corporatetravel policy).

It has been determined that many employees' corporate travel expenditurealigns with the maximum policy amounts as a baseline. For example, if apolicy indicates a maximum price of $500 per night for a hotel in NewYork City, it has been determined that an employee will spend closer to$500, even though many high quality hotels could be found for much lesscost, because the employee has no incentive to spend significantly lessthan what the policy permits, nor do any current booking systems providethe user with useful tools for lowering their corporate travelexpenditure. In fact, in some cases, the employee may have an incentivefrom a loyalty or rewards club to choose a more expensive travel bookingoption in order to obtain loyalty points or status, and to foregocheaper comparable rooms or flights that are available at a lower cost(but without such loyalty rewards). In this case, the employee actuallyhas an incentive to use the full policy allocation to obtain value thatis personal to the employee, rather than the company.

SUMMARY

Thus, a system and method is disclosed herein for executing anddisplaying search results, and, more particularly, for analyzing searchresults to rank and sort search results for a travel reservation andgenerate a graphical user interface having control elements and regionsto facilitate corporate travel savings.

According to one aspect of the present disclosure, a method is providedfor executing and displaying search results. The method includesreceiving, from a user, a search request for a travel reservation,wherein the user is a member of an organization having an associatedtravel expense policy, and generating search results by querying one ormore databases based on the search request for the travel reservation.Each search result includes a candidate travel reservation and arespective cost. The method further includes determining a target costassociated with the search request based on the generated search resultsand on the travel expense policy, and in response to determining that atleast one of the search results has a corresponding cost that is lessthan the target cost of the search request by a threshold amount,annotating the at least one search result with a positive weight. Themethod includes generating a graphical user interface comprised of alisting of the search results, wherein the search results are renderedfor display in an order based on at least one annotation.

In another aspect, further in response to determining that at least oneof the search results has a corresponding cost that is less than thetarget cost of the search request by the threshold amount, the methodincludes calculating a reward amount associated with the at least onesearch result and that is owed to the user upon the user's selection ofthe corresponding search result, and annotating the at least one searchresult to include the calculated reward amount, wherein the annotatedsearch result is further rendered in the graphical user interface todisplay a reward indicator representing the corresponding reward amountas part of the listing.

In another aspect, wherein generating the graphical user interfacefurther includes, for each of the search results: generating, for eachof the search results, a selection user interface element configured to,when activated by user input, select the corresponding search result forfulfilling the search request. A selection user interface element forthe annotated search result includes the reward indicator and indicatesthe reward amount associated with the search result.

In another aspect, the method further includes receiving a userselection from the search results indicating an initial travelreservation; and responsive to determining that the initial travelreservation selected by the user does not have a corresponding rewardamount, generating an intermediary graphical user interface that isrendered to display at least one alternative travel reservation with areward amount for selection and a confirmation user interface elementconfigured to receive input confirming the user's original choice.

In another aspect, the method further includes sorting the searchresults such that annotated search results having corresponding rewardamounts are at the top of the search results.

In another aspect, wherein the generated graphical user interface isrendered to display the target cost at a top portion of the searchresults.

In another aspect, wherein the search results are sorted using aweighting mechanism based on at least one of the target cost, the amountof availability of candidate travel reservations, user preferences, andpast booking made by the user and by associated users.

In another aspect, the method further includes determining that thesearch results are indicative of a dense search area based on a numberof search results per unit area; and modifying the search request todecrease a location radius and executing the modified search request.

In another aspect, the method further includes determining a travelerprofile associated with the user, and calculating the reward amountbased on the traveler profile.

In another aspect, the method further includes determining a travelerprofile associated with the user, and sorting the search results todisplay annotated search results in an order representing a highesttotal value to the user according to the traveler profile and to thecompany

According to another aspect of the present disclosure, a system forexecuting and displaying search results is provided that includes one ormore databases, and a hardware processor. The hardware processor isconfigured to receive, from a user, a search request for a travelreservation, wherein the user is a member of an organization having anassociated travel expense policy; generate search results by queryingthe one or more databases based on the search request for the travelreservation, wherein each search result comprises a candidate travelreservation and a respective cost; determine a target cost associatedwith the search request based on the generated search results and on thetravel expense policy; in response to determining that at least one ofthe search results has a corresponding cost that is less than the targetcost of the search request by a threshold amount, annotate the at leastone search result with a positive weight; and generate a graphical userinterface comprised of a listing of the search results, wherein thesearch results are rendered for display in an order based on at leastone annotation.

According to another exemplary aspect, a computer-readable medium isprovided comprising instructions that comprises computer executableinstructions for performing any of the methods disclosed herein.

The above simplified summary of example aspects serves to provide abasic understanding of the present disclosure. This summary is not anextensive overview of all contemplated aspects, and is intended toneither identify key or critical elements of all aspects nor delineatethe scope of any or all aspects of the present disclosure. Its solepurpose is to present one or more aspects in a simplified form as aprelude to the more detailed description of the disclosure that follows.To the accomplishment of the foregoing, the one or more aspects of thepresent disclosure include the features described and exemplarilypointed out in the claims.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated into and constitute apart of this specification, illustrate one or more example aspects ofthe present disclosure and, together with the detailed description,serve to explain their principles and implementations.

FIG. 1 is a block diagram illustrating a system for managing andexecuting travel search results according to an exemplary aspect.

FIG. 2 is a flowchart illustrating a method for executing and displayingsearch results of a travel search engine according to an exemplaryaspect.

FIG. 3 depicts an example graphical user interface for searching andmanaging search results for a travel search engine according to anaspect of the present disclosure.

FIGS. 4 and 5 depict example graphical user interfaces having a mapportion for searching and managing search results for a travel searchengine according to an aspect of the present disclosure.

FIG. 6 depicts an example graphical user interface for providingalternative search results according to an aspect of the presentdisclosure.

FIG. 7 is a block diagram of a computer system on which the disclosedsystem and method can be implemented according to an exemplary aspect.

DETAILED DESCRIPTION

Exemplary aspects are described herein in the context of a system,method, and computer program product for executing and displaying searchresults from a travel search engine and booking system. Those ofordinary skill in the art will realize that the following description isillustrative only and is not intended to be in any way limiting. Otheraspects will readily suggest themselves to those skilled in the arthaving the benefit of this disclosure. Reference will now be made indetail to implementations of the example aspects as illustrated in theaccompanying drawings. The same reference indicators will be used to theextent possible throughout the drawings and the following description torefer to the same or like items.

Aspects of the present disclosure provide an end-to-end travel searchengine and booking system that embodies the idea that, to an employee ofa company, a corporate dollar is considered a separate, less valuablecurrency than a personal dollar. It has been determined that thisdisparity between corporate dollars and personal dollars lies at theroot of the inefficiency of corporate travel expenditure. Accordingly,aspects of the present disclosure include a search engine thatcalculates personal user rewards according to various rulesets,including but not limited to corporate travel expenditure policies, andmodifies its travel search results to indicate such personal userrewards. The described travel booking system may embed asavings-incentive concept deeply into the overall travel search andbooking user experience so as to facilitate a technical platform for acompany's employees to make better decisions, reduce corporateexpenditure, and save money. As described herein, the described systemmay monitor user behavior and modify the system's behavior accordinglyto drive more cost savings. Such modifications to the system's behaviormay include changes to how a user's personal rewards are calculated aswell as changes to how such rewards are presented graphically to theuser (e.g., changes to the UI, work flow, messaging, order of searchresults, injection of various social aspects, etc.).

According to an aspect, the present system may determine a so-called“price-to-beat” or target cost for a particular travel booking on whicha search query is executed. The target cost (also referred to as an“efficient price”) may be selected as an inflection point thatrepresents what a corporate user would choose as a price for theirpersonal expenditure rather than a corporate expenditure. As describedin greater detail below, the system determines a price-to-beat for everytravel search run through the system. The determination for theprice-to-beat may take into account a variety of factors, includingnumber of results, availability, pricing, user preferences, companypolicy, past bookings made by the user that executes the search, andpast bookings made by other users from the same company or by otherusers in the system at large. Search results returned by the searchquery that have a cost (i.e., price) that is less than the price-to-beatmay be considered a booking with savings, i.e., a booking having anaccompanying personal user reward. The described system annotates thesearch results to include any calculated accompanying personal userrewards in a graphical user interface that renders those annotatedsearch results alongside unmodified search results for the user's reviewand selection.

FIG. 1 is a block diagram illustrating a travel booking system 100 formanaging and executing travel search results according to an exemplaryaspect. The system 100 includes one or more client devices 102communicatively connected to a search system 105 by a network 103. Eachclient device 102 may include a client application 106 configured toexchange data with the search system 105 for searching, making, andmanaging travel bookings. In some aspects, the search system 105 may beconfigured as a software-as-a-service platform, of which the operator ofthe client device 102 is a user, for searching and booking corporatetravel itineraries associated with a company that the user is anemployee of.

In one aspect, the client application 106 may transmit a request (i.e.,query) to the search system 105 for any travel bookings that match aplurality of search parameters (e.g., start and end date, location). Inresponse, the search system 105 executes the query and returns anysearch results back to the client application 106, which renders anddisplays the search results in an interactive graphical user interface108 for viewing and making travel reservations corresponding to any ofthe search results.

In some implementations, the client application 106 may be a web browserapplication configured to transmit HTTP requests to the search system105, which returns the search results in the form of any combination ofa markup document, stylesheets, scripting files, and/or graphics files(e.g., HTML, XML, CSS, JavaScript, JSON) that comprises a graphical userinterface 108 having the search results. In this instance, the clientapplication 106 renders the graphical user interface 108 for display atthe client device 102 by processing the received markup document havingthe search results. In other implementations, the client application 106may be a specialized software application for interacting with thesearch system 105, such as a mobile app configured to execute on asmartphone or mobile device.

The client device 102 (and servers 104 mentioned below) may be anycomputing device, desktop, laptop, handheld device, smartphone, tabletdevice, physical server, computer server, host, or any other electronicdevice suitable for executing software program code as described herein.In some aspects, the network 103 may include, for example, the Internet,intranets, extranets, wide area networks (WANs), local area networks(LANs), wired networks, wireless networks, or other suitable networks,etc., or any combination of two or more such networks. For example, suchnetworks may comprise satellite networks, cable networks, Ethernetnetworks, and other types of networks.

In one aspect, the search system 105 may include one or more servers 104configured to support execution of a search engine 110 that processesthe received search queries. To fulfill the query, the search engine 110may access one or more databases 112 managed by the search system 105that stores all information related to travel booking, includingcurrently available reservations, prior cancellations, prior searches,and other user behavior data. The search engine 110 may also access, viapre-defined APIs (application programming interfaces), one or morethird-party providers 120 having databases 122 for travel-relatedinformation. The APIs exposed by the third-party providers 120, whichinclude online travel agencies (OTAs), affiliate networks, metasearchengines, property owners, “bed banks” (for lodging), and globaldistribution systems (GDS), allow for programmatic access to aggregateddata about available flights, hotels, rental cars, and other travelbookings.

In one aspect, the databases 112 may store other information related totravel bookings, such as a corporate travel expenditure policy and otherpolicies 114, the current user's profile and other user profiles 116,reservation histories 118 that detail the user's current, prior, andfuture travel bookings, and user interactions with the search system 105(e.g., UI analytics). The search engine 110 may be configured toretrieve and factor in such information when customizing and modifyingthe user's search results. In one aspect, the search engine 110 may beconfigured to modify the search results based on one or more machinelearning (ML) models 119. The machine learning models 119 may beconfigured to generate a prediction of user behavior related to a travelsearch request and travel bookings, and may be trained on a dataset ofprior searches, prior user behavior, prior cancellations, and priorbookings (e.g., found by reservation histories 118).

In one example scenario, a user may submit, via a user interface of theclient application 106, a search request for a hotel reservationassociated with corporate travel. The search request may include alocation parameter specifying a region of New York City (e.g., SoHoneighborhood) and a start and end date of Nov. 10, 2018 to Nov. 15, 2018(i.e., five nights). In response to such a query, the search engine 110may (1) fetch all hotels available for this search; (2) remove resultsthat are not relevant for that search; (3) apply policy rules on theresults set; (4) order the results set by price; (5) select a pricepoint from the sorted listing and set it as the target cost for rewards(i.e., “price-to-beat”). The search engine 110 may then (6) analyze eachsearch result and any booking that is less than the target cost may beannotated as a booking with savings. For example, one search resultspecifies an available hotel room matching the search parameters andhaving a cost of $250 per night. Assuming a target cost of $300 pernight was selected, the search engine may calculate a possible corporatesavings of $250 ($50×5=$250) if the user selects this search result. Thesearch engine 110 may annotate the search result with a personal rewardsamount of $75 calculated as a percentage of the total corporate savingsas an incentive for user selection, e.g., 30% of the total corporatesavings. The search engine may then (7) apply a weighing mechanism tothe result set taking into account user preferences, past bookings,colleagues' bookings, etc., and (8) sort the listing of search resultsby price and weight for display as a listing of search results.

For sake of explanation, aspects of the present system are described indetail in the context of searching for hotel reservations; it isunderstood that the described aspects can be extended to any searchresults for travel booking and reservations, or other types of searchresults. As used herein, a travel booking or reservation may refer toany travel fare, reservation, itinerary item, or travel-related item,including airline fares, railway fares, automobile rentals, hotelreservations, short-term rentals, etc.

FIG. 2 is a flowchart illustrating a method 200 for executing anddisplaying search results of a travel search engine according to anexemplary aspect. It is noted that the following description of theexemplary method makes reference to the system and components describedabove. At the outset, the client application 106 (e.g., executing on theclient device 102) establishes a communication session with the searchsystem 105, for example, by logging into the application using usernameand password credentials associated with a given user profile. The userprofile may be a member of an organization (e.g., company, enterprise)having an associated travel expense policy. The client application 106,based on user input, may formulate and submit a search request for oneor more travel reservations. In one implementation, the search requestmay be formatted as an HTTP request having a POST action and one or moresearch parameters as name-value pairs in the search request.

At step 202, the search engine 110 of the search system 105 may receivethe search request for one or more travel reservations. The searchrequest may include search parameters which include at least a locationparameter, a start date (e.g., check-in date), and an end date (e.g.,check-out date). In some aspects, the search parameters for the travelreservation may further include additional data, such as a parameterindicating a number of people for the booking (e.g., number of guests,passengers), and a rating for the travel booking, which may include anindustry-standard rating (e.g., 3 stars or greater) or a proprietaryrating computed according to user-generated ratings (e.g., 8.3/10rating).

In one aspect, the location parameter indicates a geographical regionfor the desired location of a hotel or lodging (e.g., state, province,city, or even neighborhood in city). The location parameter may be atext value indicating a city, airport, or even landmark (e.g.,“Chicago”), a postal code (e.g., zip code), a geographical indicatorprovided by the client device 102 (e.g., GPS information), ageographical indicator derived according to the network address of theclient device 102, and/or other types of information. The locationparameter may further specify a desired geographical range (e.g.,“within 10 miles”), or the geographical range may be derived based onsearch results, as described later.

At step 204, the search engine 110 may generate a plurality of searchresults by querying one or more databases 112, 122 based on the searchrequest for the travel reservation. The search engine 110 may querymultiple databases 112 and databases 122 of third-party providers (i.e.,via API) for hotel reservations that satisfy the provided searchparameters (e.g., location, dates, star-ratings) and combine the searchresults into a large pool of candidate travel reservations. Eachgenerated search result may include at least a candidate travelreservation and a respective cost. For example, one search result mayindicate a hotel room availability at Hotel X for a respective startingcost of $162 per night. Each search result may further includeadditional information including a name of the hotel, a club networkaffiliation of the hotel, an industry rating, a user-generated rating, alocation of the hotel, room and amenity information, and other travelinformation. Each search result may also include information related tothe booking policy of the travel reservation, such as whether the travelbooking is refundable or whether club network points are not applicable.

In some aspects, the search engine 110 initially executes one or moreancillary search queries, analyzes the intermediary search resultsreturned from this initial query, and based on the results perform amodified query to narrow or expand the search results for an improvedtargeted search of candidate travel reservations. For example, thesearch engine 110 may analyze the intermediary search results ofcandidate hotel reservations and calculate a density indicator for theintermediary search results as a number of search results per unit area.If the density indicator exceeds a given threshold, the system mayconclude the location of the search request is a city-like environmentand shrink the radius of the search request. That is, in response todetermining the density indicator exceeds a threshold density level, thesearch engine may modify the location parameter to decrease ageographical range of the search request and then re-execute the searchrequest. Conversely, if the search engine determines the densityindicator is less than another threshold, the search engine maycharacterize the location as a suburban-like environment and increasethe radius of search. Accordingly, aspects of the present disclosure areable to more effectively and accurately generate relevant search resultsfor travel reservations based on the actual underlying travelinfrastructure, in contrast to known techniques which simply rely ongeographical designations of a city. The described approach improves therelevancy of search results in highly dense locations (such asManhattan, New York City) having many hotels and in which a hotel a meremile away in New Jersey may be considered irrelevant.

In another example of analyzing intermediary search results, thegenerated search results may be a data set of “inventory” (e.g., alisting of all availability hotel rooms in the area) generated using aniterative process where the search engine 110 iteratively increases thesearch radius of a query until a threshold size of the inventory hasbeen reached. For example, the search engine 110 may analyze theintermediary dataset of candidate hotel reservations returned from alow-mileage radius and determine whether an insufficient number ofresults were returned. If so, then the search engine modifies the queryto increase the search radius so as to return at least a thresholdnumber of candidate travel reservations. Requiring at least a thresholdnumber of candidate travel reservations can improve subsequentprocessing of the search results, such as the calculation of the targetcost for the requested travel reservation.

In some aspects, for a search request specifying a general location, thesearch engine 110 may execute a query that returns candidate travelreservations within a pre-determined geographical range, whereas asearch request specifying a specific address or landmark, the searchengine 110 may retrieve candidate travel reservations within a smallerpre-determined geographical range. For example, for a general search(e.g., “San Francisco, Calif.”), the system takes into account allhotels within a five mile radius or more. In contrast, for a specificsearch (e.g., “Moscone Center, 747 Howard St”), the system takes intoaccount all hotels within a smaller radius, such as 1.5 miles. In thecase of the specific search, if there are insufficient search resultsfound within the smaller radius, the system iteratively expands thesearch radius (and re-executes the search) until a sufficient number ofsearch results are reached. This iterative process advantageously helpsthe systems identify whether the user is booking in a city or in a lessurban area.

At step 206, the search engine 110 may determine a target costassociated with the search request based on the generated search resultsand on the travel expense policy. In some aspects, the search engine 110may apply one or more policy rules to the search results, selectivelydetermine a target cost from the search results, apply a weighingmechanism to the search results that takes into account a variety offactors such as the target cost, the user profile, historicalreservations, and others' bookings, and sort the listing of searchresults by price and weight (i.e., sort for search result ranking).

In some aspects, the search engine 110 may first retrieve (e.g., fromdatabase 112) the corporate travel expense policy 114 associated withthe organization of which the user is a member. The corporate travelexpense policy may include a general spending limit (e.g., $300/night),as well as itemized spending limits (e.g., up to $500/night fordesignated high-spend areas, or up to $500/night for a given userprofile based on their title in the company). For example, the corporatetravel expense policy may specify different policies for differentusers, such as only executives can make a business class airlinebooking, such that if a non-executive searched for a business classtickets, the returned search results would be annotated as “out ofpolicy”. In some cases, the corporate travel expense policy may specifyan excluded type of industry rating (e.g., no five-star) or class ofreservation (e.g., no business class). In some aspects, the corporatetravel expense policy may specify a maximum class or price for airlinebookings of different flights having short or long durations. In someaspects, the system may apply a default dynamic policy in situations inwhich there is no managed travel policy for a company. The defaultdynamic policy may set a target cost that is a product of a fair marketvalue for the travel reservation and a pre-determined multiplicationfactor (e.g., 1.5 times the fair market value). In some aspects, thecorporate expense policy may specify a maximum cost associated with aparticular search, in which the target cost (i.e., rewards eligibility)will be capped at the policy amount regardless of the other marketconditions.

The search engine 110 may apply the retrieved policy to the searchresults to remove one or more search results that fail to comply withthe policies 114. For example, the search engine may discard any searchresults having a corresponding cost that exceeds the maximum allowablecost specified by the corporate travel policy. In some aspects, thesearch engine 110 may then order the listing of search results by theircorresponding cost. The search engine 110 may select an actual cost fromthe ordered listing, and set the selected cost as the “target cost”associated with the search request. In one implementation, the targetcost may be selected from the median cost of the ordered listing ofsearch results. In other aspects, the target cost may be derived fromone or more actual costs from the ordered listing (e.g., calculated asan average cost). In some aspects, the target cost may be selected froma median cost of an ordered subset of search results having an indicatedclub network affiliation of which the user is a member.

In one particular aspect, the target cost may be determined according tothe number of search results, the availability of candidate travelreservations, and the pricing and cost of the inventory. In oneimplementation, the target cost may be calculated using a subset of thesearch results which is selected using a pre-determined“business-acceptable” criteria and taking a point along the continuum ofcosts of that subset of search results. For example, the search enginemay identify a subset of the hotels based on the business-acceptablecriteria of having a star rating within a particular range of starratings (e.g., 3 or 4 stars, or boutique), having a review score thatexceeds a threshold score (e.g., >=7.0 rating), in an appropriate radius(e.g., taking into account the density index). The search engine maythen mark a point on the pricing continuum for those properties, such asthe 50^(th) percentile, although other points may be used.

In some aspects, the search engine 110 may determine the target cost asa user-agnostic value. In an alternative aspect, the search engine 110may increase or decrease the target cost based on a user's history ofprior travel bookings and interactions with the search system 105. Thatis, the search engine 110 may increase the target cost based on adetermination that the given user has rarely or infrequently selectedtravel booking with personal user rewards, based on a conclusion thatthe given user requires a greater incentive for selecting travelbookings below the target cost. Similarly, the search engine maydecrease the target cost based on a determination that the given userhistorically selects a travel booking with personal user rewards basedon a conclusion that the given user requires less incentive, and furtherto increase the amount of corporate savings on travel expenditure. Thatis, the search engine 110 may apply an upward or downward bias to thetarget cost so as to increase the likelihood that the user selects atravel booking that is less than the target cost, while also setting thelowest target cost to maximize corporate travel costs.

The search engine 110 may then proceed to iteratively process each ofthe search results based on the determined target cost for this travelreservation. For each search result, at step 208, the search engine 110compares the respective cost of a search result with the target cost(determined above) and checks whether the given travel reservation'scost is less than the target cost by at least a threshold amount.

If so, at step 210, (i.e., in response to determining that at least oneof the search results has a corresponding cost that is less than thetarget cost of the search request by a threshold amount), the searchengine 110 may calculate a reward amount associated with the at leastone search result and that is owed to the user upon the user's selectionof the corresponding search result. In some aspects, the rewards may becalculated by taking a percentage of the difference between target costof the search request and the cost of the search result (e.g., 30%),which are savings that can be passed on to the user in the formal ofpersonal rewards. In some aspects, the percentage calculated may be apredetermined percentage determined according to the retrieved corporatetravel policy 114. In alternative aspects, the percentage calculated maybe dynamically determined according to the user profile 116 and history118. It is noted that the reward amount that is owed to the user uponthe user's selection of the corresponding search result may be providedas a payment separate and distinct from the user's payment of the travelbooking. That is, the reward amount is considered supplementary to acorporate payment method used for payment of the travel booking (e.g.,corporate credit card), or even to a personal payment method which iseventually reimbursed. By way of example, the personal user reward mayinclude a gift card or gift credits for a retail store made in theamount of the rewards amount, a form of virtual currency, or othercurrency, or an ability to make a charitable donation of equivalentvalue.

At step 212, the search engine 110 may annotate the at least one searchresult to include an indication that the respective cost is below thetarget cost. The annotation may include a weight assigned to the searchresult that gives a positive bias (for use in later sorting). Similarly,search results determined to not have a respective cost that exceeds thetarget cost may be annotated with a negative weight. In some aspects,the search engine 110 may annotate each search result based on one ormore user-specific factors, such as an indication of whether the searchresult qualifies for a certain loyalty program and indications of auser's prior travel bookings. In some aspects, the search engine 110 mayannotate each search result with company-specific factors, such aswhether another user of the company has booked the same or a similartravel booking, or whether the travel booking is in or out of policy.

In some aspects, the search engine 110 may annotate the at least onesearch result to include the calculated reward amount. In someimplementations, the search engine 110 inserts one or more datastructures into the result set that specifies the calculated rewardamount for the respective candidate travel reservation. In someimplementations, the calculated reward amount may be calculated as atotal rewards amount in contrast to the candidate travel booking's cost,which is expressed in a daily rate or per diem rate.

At step 213, the search engine 110 may sort the search results based onannotations made to the search results. For example, annotated searchresults may be sorted based the cost of the search result and a positiveor negative weight that represents whether the respective search resultis less than the target cost, as well as according to user-specificfactors such as past bookings by that user, loyalty options, etc., whichdetermines which results are displayed on the first page to theparticular user. In some aspects, search results having a positiveweight representing the search result has a cost that is less than thetarget cost may be sorted before (i.e., ranked higher) than searchresults having a cost is greater than the target cost.

The search engine 110 may also apply a weighing mechanism to searchresults that assigns a weight to the search result based on informationderived from the user profile 116 and reservation histories 118 of theparticular user and other users. In some aspects, the weighing mechanismmay provide an increased weight on search results having a club networkaffiliation of which the user is a member (e.g., Marriott rewards). Theweighing system takes into account relevant factors such as: the hotel'sdistance from the searched location, number of stars, review score,loyalty incentives, if other users from the same company have booked inthat property before, if this user has booked in this property before,etc. In some aspects, the search engine 110 may retrieve a travelerprofile 114 associated with the user and then sort the search results todisplay annotated search results in an order representing a highesttotal value to the user according to the traveler profile and to thecompany.

In some aspects, the search engine may apply the machine learning models119 to assign a weight to each search result indicating a likelihoodthat the user will book the corresponding travel book. For example, themachine learning model 119 may be applied to a search result for a givenhotel, with its respective hotel information as input parameters (e.g.,distance, location, price, loyalty program affiliation, star rating) togenerate a prediction the user will book that particular hotel. Eachhotel may be assigned a weight according to this machine learning model(which may then be re-trained using the outcome of the eventual travelbooking.) In one implementation, a positive or larger weight from themachine learning model can represent a higher likelihood that the userwould select the respective travel booking (and is therefore displayedfirst), and a negative or smaller weight represents a lesser likelihoodthat the user would select the respective travel booking.

At step 214, after processing the search results, the search engine 110may return the modified search results of the search request to theclient application 106. The search engine 110 may generate a graphicaluser interface 108 comprised of a listing of the search results. In thisgraphical user interface 108, the listing of search results aredisplayed in an order based on any annotations made to the searchresults. In some aspects, the graphical user interface is generated suchthat any annotated search results are rendered to display a rewardindicator representing the corresponding reward amount as part of thelisting. In one aspect, the generation of a graphical user interface mayrefer to the creation, by the search system 105, of a markup document(e.g., HTML) or other response data that contains the listing of searchresults including any annotated search results. The client application106 receives the response and renders for display, for example, on adisplay device of the client device 102.

FIG. 3 depicts an example graphical user interface 300 for searching andmanaging search results for a travel search engine according to anaspect of the present disclosure. The graphical user interface 300includes a tabular view 302 of the listing of search results and afilter portion 303 proximate to the list of search results.

As shown, the graphical user interface 300 includes an indication of thedetermined target cost (i.e., “the price to beat to earn personalrewards is $231”) at a top portion of the search listings. In otheraspects, the graphical user interface may be rendered to display thetarget cost on a top portion of the “viewing window”, such that thetarget cost remains in a top-biased location even when the user hasscrolled down the listing of search results.

Each row for a search result includes a graphical representation of thecandidate hotel reservation's information, as well as a selection userinterface element 306 configured to, when activated by user input,select the corresponding search result for fulfilling the searchrequest. As shown, the selection user interface element 306 for theannotated search result comprises the reward indicator and indicates thereward amount (e.g., “Earn $10”) associated with the search result. Theselection user interface element may be aligned in a location of thetabular view 302 with a corresponding selection user interface element308 for search results that do not have rewards amounts (i.e.,“Select”). As shown, both the buttons 306 and 308 are aligned on a rightside of the tabular view. In this way, the graphical user interfaceadvantageously provides a view of the rewards that is directly embeddedin the search results 302.

In one aspect, the filter portion 303 may include one or more controluser interface elements (e.g., checkboxes, radio elements, dials,sliders, text input elements) configured to, when updated by the user,modify the listing of search results to only display those searchresults that satisfy the criteria specified in the control userinterface elements. For example, the filter portion 303 includes one ormore control user interface elements indicating a toggle for whether todisplay only those annotated search results having a reward amount(i.e., “Earn Reward $”). In another example, the filter portion 303 mayinclude a control user interface element configured to toggle whether todisplay search results that satisfy the corporate travel expense policyof the user (i.e., “In Policy”). In some aspects, the filter portion 303may include a control user interface element configured to toggledisplay of search results having an annotation indicating the travelbooking qualifies for a given loyalty points program.

In some aspects, the selection user interface element 306 may beconfigured to dynamically update the display of the reward amount basedon the changes made in the filter portion 303. For example, in responseto user input activating a search result filter for only those searchresults qualifying for a given loyalty program or only those searchresults that are refundable, the graphical user interface maydynamically update the rewards portion to decrease the graphicallyrepresented reward amount based on the filtered results.

FIGS. 4 and 5 depict example graphical user interfaces 400, 500 having amap portion for searching and managing search results for a travelsearch engine according to an aspect of the present disclosure. Thegraphical user interfaces 400 and 500 are similar to the graphical userinterface shown in FIG. 3 (for example, having a filter portion 403, andhaving a listings portion 502), with the inclusion of a map portion 402(and 502). The map portion 402 is generated to include a plurality oflocation indicators 404 corresponding to the listing of search resultsprovided on the listing portion of the graphical user interface (asshown in FIG. 5). Each of the location indicators may be annotated withan indication that the corresponding candidate hotel reservation mayinclude a rewards amount. In the example shown, the location indicatorsare annotated with a colored badge 406 corresponding to a rewardsindicator.

FIG. 6 depicts an example graphical user interface 600, 601 forproviding alternative search results according to an aspect of thepresent disclosure. According to one aspect, the search system 105 maybe configured to influence the user's decision during the bookingexperience at various stages, not just during the search stage. Thefarther a user is in the process of creating a travel booking, the morethe search system 105 may infer and determine about the preferences ofthe user for this particular booking. In addition to showing rewardamounts right in the search results page, the search system 105 may beconfigured to generate intermediary graphical user interfaces as “lastfinal” attempts to drive the users into selecting a higher-value orlower cost travel booking, by selecting and showing the user relevantalternative travel bookings.

In one aspect, the search system may receive a user selection from thesearch results indicating an initial travel reservation. For example,the user is browsing a hotel with no personal user rewards (i.e., thecost of this hotel is greater than the target cost). Responsive todetermining that the initial travel reservation selected by the userdoes not have a corresponding reward amount, the search system 105generates an intermediary graphical user interface 600 that is renderedto display at least one alternative travel reservation (602) with areward amount for selection. This intermediary graphical user interface600 also includes a confirmation user interface element 604 configuredto receive input confirming the user's original choice (“Continue withthis hotel”).

For example, on this browsing page, the system selects and presents(i.e., in a graphical user interface) hotels that are similar to thebrowsed hotel, but with rewards (if any). These alternative hotels aresimilar in all aspects to the browser hotel, having a location that isvery close to the user's choice, having a similar star level, and userrating. If the user proceeds with a particular selection, then thesystem may make a final attempt to affect the user's choice by showing asplit screen 601 with the original user's choice as well as the similaralternatives and the rewards. The system may also highlight in thegraphical user interface the differences between the alternatives andthe original selection (i.e., same star level, better user rating, only0.2 miles away).

Another aspect of the present disclosure includes an administrative-sidegraphical user interface. The system 105 may be configured to generatean administrative graphical user interface having reporting andadministrative tools that provide information as well as graphicalrepresentations (e.g., charts) about employees' booking behavior andsavings/rewards distribution. Using such information, a systemadministrator is able to spot outliers and guard against employees thatattempt to “game” the system and over-calibrate towards rewards. Thereporting tools may provide a graphical visualization into employeebehavior who are, for example, maximizing rewards by shifting costs fromhotels (where rewards are available) to another travel expense such asrental cars or taxis (where rewards might not be available). Such avirtualization tool may facilitate the identification of, for example,an employee that books a distant hotel room to maximize personal userrewards and takes more expensive taxis back and forth (which isexpensed).

FIG. 7 is a block diagram illustrating a computer system 20 on whichaspects of systems and methods for searching and managing search resultof a travel search engine may be implemented in accordance with anexemplary aspect. It should be noted that the computer system 20 cancorrespond to the client devices 102 and servers 104, for example,described earlier.

As shown, the computer system 20 (which may be a personal computer or aserver) includes a central processing unit 21, a system memory 22, and asystem bus 23 connecting the various system components, including thememory associated with the central processing unit 21. As will beappreciated by those of ordinary skill in the art, the system bus 23 maycomprise a bus memory or bus memory controller, a peripheral bus, and alocal bus that is able to interact with any other bus architecture. Thesystem memory may include permanent memory (ROM) 24 and random-accessmemory (RAM) 25. The basic input/output system (BIOS) 26 may store thebasic procedures for transfer of information between elements of thecomputer system 20, such as those at the time of loading the operatingsystem with the use of the ROM 24.

The computer system 20 may also comprise a hard disk 27 for reading andwriting data, a magnetic disk drive 28 for reading and writing onremovable magnetic disks 29, and an optical drive 30 for reading andwriting removable optical disks 31, such as CD-ROM, DVD-ROM and otheroptical media. The hard disk 27, the magnetic disk drive 28, and theoptical drive 30 are connected to the system bus 23 across the hard diskinterface 32, the magnetic disk interface 33, and the optical driveinterface 34, respectively. The drives and the corresponding computerinformation media are power-independent modules for storage of computerinstructions, data structures, program modules, and other data of thecomputer system 20.

An exemplary aspect comprises a system that uses a hard disk 27, aremovable magnetic disk 29 and a removable optical disk 31 connected tothe system bus 23 via the controller 55. It will be understood by thoseof ordinary skill in the art that any type of media 56 that is able tostore data in a form readable by a computer (solid state drives, flashmemory cards, digital disks, random-access memory (RAM) and so on) mayalso be utilized.

The computer system 20 has a file system 36, in which the operatingsystem 35 may be stored, as well as additional program applications 37,other program modules 38, and program data 39. A user of the computersystem 20 may enter commands and information using keyboard 40, mouse42, or any other input device known to those of ordinary skill in theart, such as, but not limited to, a microphone, joystick, gamecontroller, scanner, etc. Such input devices typically plug into thecomputer system 20 through a serial port 46, which in turn is connectedto the system bus, but those of ordinary skill in the art willappreciate that input devices may be also be connected in other ways,such as, without limitation, via a parallel port, a game port, or auniversal serial bus (USB). A monitor 47 or other type of display devicemay also be connected to the system bus 23 across an interface, such asa video adapter 48. In addition to the monitor 47, the personal computermay be equipped with other peripheral output devices (not shown), suchas loudspeakers, a printer, etc.

Computer system 20 may operate in a network environment, using a networkconnection to one or more remote computers 49. The remote computer (orcomputers) 49 may be local computer workstations or servers comprisingmost or all of the aforementioned elements in describing the nature of acomputer system 20. Other devices may also be present in the computernetwork, such as, but not limited to, routers, network stations, peerdevices or other network nodes.

Network connections can form a local-area computer network (LAN) 50 anda wide-area computer network (WAN). Such networks are used in corporatecomputer networks and internal company networks, and they generally haveaccess to the Internet. In LAN or WAN networks, the personal computer 20is connected to the local-area network 50 across a network adapter ornetwork interface 51. When networks are used, the computer system 20 mayemploy a modem 54 or other modules well known to those of ordinary skillin the art that enable communications with a wide-area computer networksuch as the Internet. The modem 54, which may be an internal or externaldevice, may be connected to the system bus 23 by a serial port 46. Itwill be appreciated by those of ordinary skill in the art that saidnetwork connections are non-limiting examples of numerouswell-understood ways of establishing a connection by one computer toanother using communication modules.

In various aspects, the systems and methods described herein may beimplemented in hardware, software, firmware, or any combination thereof.If implemented in software, the methods may be stored as one or moreinstructions or code on a non-transitory computer-readable medium.Computer-readable medium includes data storage. By way of example, andnot limitation, such computer-readable medium can comprise RAM, ROM,EEPROM, CD-ROM, Flash memory or other types of electric, magnetic, oroptical storage medium, or any other medium that can be used to carry orstore desired program code in the form of instructions or datastructures and that can be accessed by a processor of a general purposecomputer.

In various aspects, the systems and methods described in the presentdisclosure can be addressed in terms of modules. The term “module” asused herein refers to a real-world device, component, or arrangement ofcomponents implemented using hardware, such as by an applicationspecific integrated circuit (ASIC) or field-programmable gate array(FPGA), for example, or as a combination of hardware and software, suchas by a microprocessor system and a set of instructions to implement themodule's functionality, which (while being executed) transform themicroprocessor system into a special-purpose device. A module may alsobe implemented as a combination of the two, with certain functionsfacilitated by hardware alone, and other functions facilitated by acombination of hardware and software. In certain implementations, atleast a portion, and in some cases, all, of a module may be executed onthe processor of a general purpose computer (such as the one describedin greater detail in FIG. 7, above). Accordingly, each module may berealized in a variety of suitable configurations, and should not belimited to any particular implementation exemplified herein.

In addition, the terms “first,” “second,” etc. are typically used hereinto denote different units (e.g., a first element, a second element). Theuse of these terms herein does not necessarily connote an ordering suchas one unit or event occurring or coming before another, but ratherprovides a mechanism to distinguish between particular units.Additionally, the use of a singular tense of a noun is non-limiting,with its use typically including one or more of the particular thingrather than just one (e.g., the use of the word “memory” typicallyrefers to one or more memories without having to specify “memory ormemories,” or “one or more memories” or “at least one memory”, etc.).Moreover, the phrases “based on x” and “in response to x” are used toindicate a minimum set of items x from which something is derived orcaused, wherein “x” is extensible and does not necessarily describe acomplete list of items on which the operation is performed, etc.

In the interest of clarity, not all of the routine features of theaspects are disclosed herein. It would be appreciated that in thedevelopment of any actual implementation of the present disclosure,numerous implementation-specific decisions must be made in order toachieve the developer's specific goals, and these specific goals willvary for different implementations and different developers. It isunderstood that such a development effort might be complex andtime-consuming, but would nevertheless be a routine undertaking ofengineering for those of ordinary skill in the art, having the benefitof this disclosure.

Furthermore, it is to be understood that the phraseology or terminologyused herein is for the purpose of description and not of restriction,such that the terminology or phraseology of the present specification isto be interpreted by the skilled in the art in light of the teachingsand guidance presented herein, in combination with the knowledge of theskilled in the relevant art(s). Moreover, it is not intended for anyterm in the specification or claims to be ascribed an uncommon orspecial meaning unless explicitly set forth as such.

The various aspects disclosed herein encompass present and future knownequivalents to the known modules referred to herein by way ofillustration. Moreover, while aspects and applications have been shownand described, it would be apparent to those skilled in the art havingthe benefit of this disclosure that many more modifications thanmentioned above are possible without departing from the inventiveconcepts disclosed herein.

What is claimed is:
 1. A method for executing and displaying searchresults, comprising: receiving, from a user, a search request for atravel reservation, wherein the user is a member of an organizationhaving an associated travel expense policy; generating search results byquerying one or more databases based on the search request for thetravel reservation, wherein each search result comprises a candidatetravel reservation and a respective cost; determining a target costassociated with the search request based on the generated search resultsand on the travel expense policy; in response to determining that atleast one of the search results has a corresponding cost that is lessthan the target cost of the search request by a threshold amount,annotating the at least one search result with a positive weight; andgenerating a graphical user interface comprised of a listing of thesearch results, wherein the search results are rendered for display inan order based on at least one annotation.